/* 
 * File:   svgloader.h
 * Author: Satan
 *
 * Created on September 9, 2012, 12:00 PM
 */

#ifndef SVGLOADER_H
#define	SVGLOADER_H

#include "other/tinyxml.h"
#include "svgloader/svg_polygon.h"
#include "hfgl/hfgl_picture.h"

#include <string>
#include <vector>

// Загрузка изображение из SVG файла и поточечный возврат многоугольников из состава изображения
// Класс не претендует на полную загрузку изображения, поддерживаются только те инструкции, до которых было дело автору, остальные дописывайте сами
class svgloader
{
    public:
        // В качестве входного параметра имя файла с SVG изображением
        svgloader(std::string filename);
        virtual ~svgloader();
        // Возврат картинки хранящейся в классе в виде набора треугольников
        hfgl_picture* getPicture();
        
    private:
        // Размеры изображения
        float m_width;
        float m_height;
        
        // Фигуры составляющие рисунок
        std::vector<svg_polygon*> m_polygons;
        
        // Добавляет полигон соответствующего типа в список фигур
        void addPolygon(TiXmlElement*);
        
        // Выделяет из строки число пикселей. В случае ошибки генерирует исключение.
        float svg_getFloatFromStr(std::string);
};

#endif	/* SVGLOADER_H */

